$NG.AllReady(function (page, { useAction, useValuesChange, useUpdateRows, useUpdateRow, useDataIndexChange, useClick }) {
    const mstform = $NG.getCmpApi("p_form_risk_list");
    const user = $NG.getUser();
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    if(page.oType =='add'){
        mstform.getItem("u_info_source").setValue({
            value: '8570000000000008',
            label: '投诉'
          });
        // $NG.updateState((updater)=>{
        //     updater.data.p_form_risk_list.setProps({
        //         u_info_source:{
        //             label:'投诉',
        //             value:'8570000000000008'
        //         }
        //     })
        // })
    }
    useValuesChange(({args})=>{
        
        mstform.getItem("u_put_dt").setValue(daysBetweenDates(mstform.getItem("u_put_dt").getItem()))
    },"p_form_risk_list.u_put_dt")
    function daysBetweenDates(dateStr) {
        // 将传入的日期字符串转换为 Date 对象
        const inputDate = new Date(dateStr);
        // 获取当前日期
        const currentDate = new Date();
    
        // 将日期对象转换为时间戳（以毫秒为单位）
        const inputTime = inputDate.getTime();
        const currentTime = currentDate.getTime();
    
        // 计算两个日期之间的时间差（以毫秒为单位）
        const timeDifference = Math.abs(inputTime - currentTime);
    
        // 将时间差转换为天数
        const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
        const daysDifference = Math.floor(timeDifference / oneDay);
    
        return daysDifference;
    }
    if (mstform) {
        
      console.log("找到表单");
    //   mstform.setHidden("bill_dt", true);
    $NG.updateUI((updater)=>{
        updater.fieldSetForm.p_form_risk_list.bill_dt.setProps({
            hidden:true
        })
    })
    
    useValuesChange(({args})=>{
        hiddenform()
    },"p_form_risk_list.u_if_yfqs")
    hiddenform()
    function hiddenform(){
        if(mstform.getItem("u_if_yfqs").getValue() == '0'){
            $NG.updateUI((res)=>{
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup5.setProps({hidden:true})
            })
            $NG.updateUI((res)=>{
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup4.setProps({hidden:true})
            })
        }else {
            $NG.updateUI((res)=>{
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup5.setProps({hidden:false})
            })
            $NG.updateUI((res)=>{
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup4.setProps({hidden:false})
            })
        }
    }
      if (page.oType == "add" || page.oType == "edit" || page.oType == "copy") {
        // 获取初始值
        let cache = mstform.getItem("phid_pc").getValue();
        // 设置定时器
        const timer = setInterval(function () {
          const phid_pc = mstform.getItem("phid_pc").getValue();
          if (phid_pc !== undefined && phid_pc !== cache) {
            // 后续处理表体数据逻辑
            getPtInfoByPhid();
            cache = phid_pc;
          }
        }, 1000);
      }
      useValuesChange(({ args }) => {
        console.log("项目监听", args);
        // getProjectInfo();
        // cntMFilter()
        getPtInfoByPhid();
      }, "p_form_risk_list.phid_pc");
    } else {
      console.log("未找到表单");
    }
  
    if ((page.oType = "add")) {
      const data = $NG.getPageState().data.p_form_risk_list.phid_schemeid;
      let str = null;
      if (data == "8570000000000165") {
        str = {
          value: "8570000000000003",
          label: "现场回访",
        };
      } else if (data == "8570000000000167") {
        str = {
          value: "8570000000000002",
          label: "电话回访",
        };
      }
      $NG.updateState((updater) => {
        updater.data.p_form_risk_list.setProps({
          u_info_source: { ...str },
        });
      });
      // console.log(data.data.p_form_risk_list.phid_schemeid);
    }
  
    $NG.updateState((updater) => {
      updater.data.p_form_risk_list.setProps({
        u_propose_dt: formatDate(new Date(), "yyyy-mm-dd"),
        u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
        u_sb_per: {
          label: user.userName,
          value: user.userID,
        },
        phid_dept: {
          label: user.topOrg.oName,
          value: user.topOrg.phId,
        },
      });
    });
    useValuesChange(({ args }) => {
      console.log(args[0]);
    }, "p_form_risk_list.u_info_source");
    ////////////////////////////////////////////////////////////--字段变化逻辑--////////////////////////////////////////////////////////////
  
    if (page.oType == "add" || page.oType == "edit" || page.oType == "copy") {
      // 项目监听
  
      //单据引用后有值的字段
      let cache = mstform.getItem("phid_pc").getValue();
      const timer = setInterval(function () {
        const phid_pc = mstform.getItem("phid_pc").getValue();
        if (phid_pc !== undefined && phid_pc !== cache) {
          //todo...后续处理表体数据逻辑
          // getProjectInfo();
          cache = phid_pc;
        }
      }, 1000);
    }
    let gxrInfo = null;
    const timerG = setInterval(function () {
      const gxr = mstform.getItem("u_customer_name").getValue();
      if (gxr !== undefined && gxr !== gxrInfo) {
        //todo...后续处理表体数据逻辑
        getGxrInfo();
        gxrInfo = gxr;
      }
    }, 1000);
    // // 监听干系人
    // useValuesChange(({ args }) => {
    //   console.log("干系人监听", args);
    //   getGxrInfo();
    // }, "p_form_risk_list.u_customer_name");
  
    //监听风险问题识别日期
    useValuesChange(({ args }) => {
      console.log(`监听风险问题识别日期`, args);
      if (daysBetween(args[0].u_put_dt, formatDate(new Date(), "yyyy-mm-dd"), true) < 0) {
        $NG.alert("时间不得大于当前日期！");
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
            u_sustain_time: 0,
          });
        });
      }
  
      if (args[0].u_put_dt) {
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            u_sustain_time: daysBetween(mstform.getItem("u_put_dt").getValue(), formatDate(new Date(), "yyyy-mm-dd")),
          });
        });
      }
    }, "p_form_risk_list.u_put_dt");
    console.log("用户信息", user);
  
    ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
    function getPtInfoByPhid() {
      if (mstform.getItem("phid_pc").getValue()) {
        $NG.execServer("getPtInfoByPhid", { phid: mstform.getItem("phid_pc").getValue() }, function (res) {
          const datas = JSON.parse(res.data)[0].extendObjects;
          console.log(datas);
          $NG.updateState((updater) => {
            updater.data.p_form_risk_list.setProps({
              //项目编码
              u_pc_no: datas.pc_no,
              // 项目经理
              phid_emp: {
                label: datas.project_manager_name,
                value: datas.project_manager_phid,
              },
              phid_org: {
                //事业部or组织
                value: datas.org_phid,
                label: datas.org_name,
              },
              u_regional_center: {
                //区域中心
                value: datas.regional_center_phid,
                label: datas.regional_center_name,
              },
              //产品线
              u_product_line: {
                value: datas.midwife_phid,
                label: datas.midwife_name,
              },
              //行业线
              u_industry_line: {
                value: datas.phid_hyx,
                label: datas.hyx_name,
              },
              // //计划开工日期
              // start_date: datas.start_date,
              // //计划完工日期
              // end_date: datas.end_date,
              // //售前顾问
              // u_sqgw: {
              //   value: datas.user_sqgw_phid,
              //   label: datas.user_sqgw_name,
              // },
              // //项目经理
              // u_project_manager: {
              //   value: datas.project_manager_phid,
              //   label: datas.project_manager_name,
              // },
              // //事业部
              // u_division: {
              //   value: datas.division_phid,
              //   label: datas.division_name,
              // },
              // //组织
              // phid_org_phid: {
              //   value: datas.phid_org_phid,
              //   label: datas.phid_org_name,
              // },
              // //区域中心
              // u_regional_center: {
              //   value: datas.regional_center_phid,
              //   label: datas.regional_center_name,
              // },
  
              // //客户名称
              // customer: {
              //   value: datas.customer_id,
              //   label: datas.customer_name,
              // },
              // //部门
              // u_dept: {
              //   value: datas.dept_phid,
              //   label: datas.dept_name,
              // },
              // //项目类型
              // u_pc_type: {
              //   value: datas.type_phid,
              //   label: datas.type_name,
              // },
              // //项目预算组织编码
              // budget_org_code: datas.budget_org_no,
              // //项目预算组织
              // budget_org_phid: {
              //   value: datas.budget_org_phid,
              //   label: datas.budget_org_name,
              // },
            });
          });
        });
      }
    }
    function getProjectInfo(isReturn = false, phid = mstform.getItem("phid_pc").getValue(), fun) {
      if (!mstform.getItem("phid_pc").getValue()) return;
      try {
        setTimeout(() => {
          $NG.execServer("getPtInfoByPhid", { phid: phid }, (res) => {
            const _data = JSON.parse(res.data)[0].extendObjects;
            console.log(`获取项目信息`, _data);
            if (isReturn) {
              fun(_data);
            } else {
              $NG.updateState((updater) => {
                updater.data.p_form_risk_list.setProps({
                  u_pc_no: _data.pc_no, //项目编码
                  // 项目经理
                  phid_emp: {
                    label: _data.project_manager_name,
                    value: _data.project_manager_phid,
                  },
                  phid_org: {
                    //事业部or组织
                    value: _data.org_phid,
                    label: _data.org_name,
                  },
                  u_regional_center: {
                    //区域中心
                    value: _data.regional_center_phid,
                    label: _data.regional_center_name,
                  },
                });
              });
            }
          });
        }, 100);
      } catch (err) {
        $NG.alert("获取项目信息发生失败请检查~");
      }
    }
  
    // 干系人信息查询
    function getGxrInfo() {
      $NG.execServer("getGxrInfo", { phid: mstform.getItem("u_customer_name").getValue() }, function (res) {
        console.log("干系人信息查询", res);
        const _data = JSON.parse(res.data)[0].extendObjects;
        console.log("信息", _data);
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            // JIRA号
            u_jira_no: "",
            // 客户层级
            u_custom_level: _data.u_level,
            // 客户职务
            u_customer_position: _data.u_position,
            // 客户单位名称
            u_customer_unit: _data.u_customer_name,
          });
        });
      });
    }
  });
  // 格式化日期
  function formatDate(dateStr, outputFormat) {
    const date = new Date(dateStr);
  
    if (isNaN(date)) {
      return "无效的日期字符串";
    }
  
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, "0");
    const day = String(date.getDate()).padStart(2, "0");
    const hours = String(date.getHours()).padStart(2, "0");
    const minutes = String(date.getMinutes()).padStart(2, "0");
  
    let formattedDate;
  
    switch (outputFormat) {
      case "yyyy-mm-dd":
        formattedDate = `${year}-${month}-${day}`;
        break;
      case "yyyy-mm-dd HH:mm":
        formattedDate = `${year}-${month}-${day} ${hours}:${minutes}`;
        break;
      // 可以根据需要继续添加其他格式的处理逻辑
      default:
        formattedDate = "不支持的输出格式";
    }
  
    return formattedDate;
  }
  // 计算2个日期之间得天数
  function daysBetween(date1, date2, abs = false) {
    // 将日期字符串转换为 Date 对象
    const d1 = new Date(date1);
    const d2 = new Date(date2);
  
    // 检查输入是否是有效日期
    if (isNaN(d1) || isNaN(d2)) {
      throw new Error("Invalid date format. Use 'yyyy-mm-dd'.");
    }
  
    // 计算时间差（毫秒）
    const timeDiff = Math.abs(d2 - d1);
    if (abs) {
      if (d2 - d1 >= 0) {
        return 1;
      } else {
        return -1;
      }
    }
  
    // 将毫秒转换为天数
    const dayDiff = Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
  
    return dayDiff;
  }
  